<?php
namespace Liaiyong\Light\Base;

interface Querying {
    /**
     * 执行SQL语句
     * @param string $sql
     * @param string $encoding
     * @param array $option
     */
	public function query($sql, $encoding = 'UTF8', array $option = array());
    /**
     * 条件查询
     * @param array $fields
     * @param array $condition
     * @param array $order
     * @param array $limit
     * @param boolean $safe
     */
	public function select($fields = array(), $condition = array(), $order = array(), $limit = array(), $safe = true);
    /**
     * 添加新数据
     * @param array $fields
     * @param array $values
     * @param boolean $replace
     */
	public function insert($fields = array(), $values = array(), $replace = false);
    /**
     * 条件更新
     * @param array $fields
     * @param array $values
     * @param array $condition
     * @param boolean $safe
     */
	public function update($fields = array(), $values = array(), $condition = array(), $safe = true);
    /**
     * 条件删除
     * @param array $condition
     * @param boolean $safe
     */
	public function delete($condition = array(), $safe = true);
    /**
     * 根据条件给某数值字段加、减值
     * @param string $field
     * @param number $num
     * @param array $condition
     * @param boolean $safe
     */
	public function increase($field, $num = 1, $condition = array(), $safe = true);
    /**
     * 通过唯一键查询
     * @param array|string $unique
     */
    public function getByUnique($unique);
    /**
     * 通过唯一键更新
     * @param array|string $unique
     * @param array
     */
    public function updByUnique($unique, array $info);
    /**
     * 通过唯一键删除
     * @param array|string $unique
     */
    public function delByUnique($unique);
}
// PHP END
